public class Test {

}
class SingleDemo{
    //在类加载的时候创建
    private static SingleDemo instance = new SingleDemo();
    //设置为private是为了防止在其他类中 new 一个实例，这样就不是单例模式了
    private SingleDemo(){ }
    //既然不能在外面创建实例，我们就要提供一个方法来得到这个唯一的实例
    public static SingleDemo getInstance() {
        return instance;
    }
}
class SingleLazyDemo{
    private static volatile SingleLazyDemo instance = null;
    //设置为private是为了防止在其他类中new一个实例
    private SingleLazyDemo(){ }
    public static SingleLazyDemo getSingleLazyDemo(){
        if(instance == null){//判断是否加锁
            synchronized (SingleLazyDemo.class){//使修改操作变成原子操作
                if(instance == null){//判断是否实例化
                    instance = new SingleLazyDemo();
                }
            }
        }
        return instance;
    }
}
